Methods and apparatus to allocate shared resources of a high speed packet access channel in a communication network

ABSTRACT

Methods and apparatus to allocate shared resources of a high speed packet access channel in a communication network are disclosed. An example method to allocate shared resources of a high speed packet access channel disclosed herein comprises providing information to a user device describing a plurality of service options for exchanging data over the high speed packet access channel, wherein the information comprises a plurality of costs based on an availability of the shared resources, and allocating at least a portion of the shared resources of the high speed packet access channel to the user device according to a selected service option from the plurality of service options.

FIELD OF THE DISCLOSURE

This disclosure relates generally to communication networks and, moreparticularly, to methods and apparatus to allocate shared resources of ahigh speed packet access channel in a communication network.

BACKGROUND

To support consumer demand for multimedia rich applications andservices, wireless network vendors and providers have adopted High SpeedPacket Access (HSPA) technologies to increase downlink (and, in somecases, uplink) data rates in the latest mobile networks. For example,the High Speed Downlink Packet Access (HSDPA) channel has been adoptedby the Third Generation Partnership Project (3GPP) for use inimplementing Universal Mobile Telecommunications System (UMTS) mobilenetworks based on Wideband Code Division Multiple Access (WCDMA)technology. The HSDPA channel is a shared common “fat pipe” channelcapable of supporting a peak data rate of up to 14.4 Mbps.

In a given cell, the HSDPA channel is divided into a plurality oftimeslots and is implemented using some of the available transmissionpower and WCDMA channel codes. The channel codes and time slotscomprising the HSDPA channel are treated as shared resources to bedynamically allocated to user devices in both the code and time domains,respectively. In a typical UMTS WCDMA mobile network, the sharedresources of the HSDPA channel are allocated in a best-effort mannerwithout any application awareness and/or service guarantees.Additionally, simultaneous requests from multiple user devices forallocation of the HSDPA channel's shared resources are typically handledon a first-come-first-served basis regardless of the applications and/orservices to be provided to any particular requesting user device.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a first example mobile communicationnetwork capable of allocating the shared resources of a High SpeedPacket Access (HSPA) channel according to the methods and apparatusdisclosed herein.

FIG. 2 is a block diagram of a second example mobile communicationnetwork capable of allocating the shared resources of an HSPA channelaccording to the methods and apparatus disclosed herein.

FIG. 3 is a flowchart representative of example machine readableinstructions that may be executed to implement user device processingfor HSPA shared resource allocation to implement the first and/or secondexample mobile communication networks of FIGS. 1 and 2, respectively.

FIG. 4 is a flowchart representative of example machine readableinstructions that may be executed to implement base station processingfor HSPA shared resource allocation to implement the first and/or secondexample mobile communication networks of FIGS. 1 and 2, respectively.

FIG. 5 is a flowchart representative of example machine readableinstructions that may be executed to implement application serverprocessing for HSPA shared resource allocation to implement the firstand/or second example mobile communication networks of FIGS. 1 and 2,respectively.

FIG. 6 is a block diagram of an example processor platform that mayexecute the example machine readable instructions of FIGS. 3-4 and/or 5to implement the first and/or second example mobile communicationnetworks of FIGS. 1 and 2, respectively.

DETAILED DESCRIPTION

A block diagram of a first example mobile communication network 100capable of allocating the shared resources of a High Speed Packet Access(HSPA) channel according to the methods and apparatus disclosed hereinis shown in FIG. 1. In particular, the example mobile communicationnetwork 100 implements a Wideband Code Division Multiple Access (WCDMA)communication network according to the Universal MobileTelecommunications System (UMTS) standard. The communication network 100of the illustrated example further implements a High Speed DownlinkPacket Access (HSDPA) channel 105 (a type of High Speed Packet Access(HSPA) channel) to provide a shared, high data rate channel to userdevices 110-120 operating in the network 100. Although the illustratedexample depicts the communication network 100 as a WCDMA communicationnetwork implementing the HSDPA channel 105, the example methods andapparatus disclosed herein are not limited to application only in WCDMAnetworks. For example, the methods and apparatus disclosed herein may bereadily adapted for use in any communication network implementing ashared channel, link, etc., for transmitting data to user devices.

In the illustrated example of FIG. 1, dashed directional lines indicatecommunication paths carrying control (erg., signaling) traffic and soliddirectional lines indicate communication paths carrying user datatraffic. To implement a WCDMA network, the example communication network100 includes an example base station 125 configured to support thesignaling and data channels, and associated signaling and user trafficprotocols, of a WCDMA communication network compliant with the UMTSstandard. For example, as illustrated in FIG. 1, the base station 125has established such signaling channels 130, 135, 140 associated,respectively, with the example user devices 110, 115, 120 operating inthe example communication network 100. Additionally, the example basestation 125 supports the HSDPA channel 105 for transmitting data trafficto the example user devices 110-120.

Any or all of the user devices 110-120 included in the examplecommunication network 100 may be implemented by any User Endpoints (UE)or Customer Premises Equipment (CPE), such as, for example, a mobile orfixed cellular telephone, a personal digital assistant (PDA), a personalmultimedia device, a personal computer/notebook, etc. The examplesignaling channels 135-140 may correspond to, for example, one or moreDedicated Channels (DCHs) carried by corresponding one or more downlinkand uplink Dedicated Physical Channels (DPCHs) as defined in the UMTSstandard. The example HSDPA channel 105 may correspond to, for example,a High Speed Downlink Shared Channel (HS-DSCH) carried by a High SpeedPhysical Downlink Shared Channel (HS-PDSCH) as defined in the UMTSstandard.

The example communication network 100 also includes one or moreapplication servers 145. For ease of discussion, only one applicationserver 145 is illustrated in FIG. 1, although any number of applicationservers may be included in the example communication network 100. Theexample application server 145 may be implemented by one or more serversprogrammed with machine readable instructions, and each such server mayinclude one or more processors for executing instructions stored in amachine readable memory. The example application server 145 isconfigured to provide application content to one or more of the userdevices 110-120 operating in the example communication network 100. Theapplication content provided by the example application server 145includes, for example, television and/or video-on-demand programming,streaming video content, games, webpages, music and/or other data files,etc.

In some example implementations, the application server 145 may bemaintained by the same service provider responsible for the example basestation 125 and, thus, may reside in the service provider's proprietarynetwork. In other example implementations, the application server 145may be maintained by a third-party provider and may reside external tothe service provider's proprietary network. In either case, the exampleapplication server 145 is coupled to the example base station 125 usingany appropriate traffic connection 150 and signaling connection 155. Forexample, the traffic connection 150 and the signaling connection 155 maybe implemented via an Internet connection carrying Transmission ControlProtocol (TCP) and Internet Protocol (IP) (i.e., TCP/IP) signaling anddata traffic, and/or a satellite link, a microwave link, etc.

The example communication network 100 implements the example HSDPAchannel 105 to provide increased downlink (i.e., network-to-user)bandwidth to the example user devices 110-120 to support the higher datarates required by multimedia applications, such as transmission of theapplication content provided by the application server 145. The exampleHSDPA channel 105 is divided into a plurality of timeslots and may beimplemented in the example communication network 100 using some of theavailable transmission power and some of the WCDMA channel codesprovided by the example base station 125. The channel codes and timeslots comprising the HSDPA channel 105 are treated as shared resourcesto be dynamically allocated to the user devices 110-120 in both the codeand time domains, respectively. As such, the multiple user devices110-120 may compete for allocation of a portion of the shared resourcesof the HSDPA channel 105.

In conventional WCDMA networks, instead of allocating bandwidth based onthe actual bandwidth (data rate) requirements of the particularapplication content, the bandwidth of an HSDPA channel might beallocated to one or more of the user devices in a best-effort mannerwithout application awareness or service guarantee. For example, somewireless service vendors/providers configure their wireless basestations to initially allocate a fixed bandwidth of the HSDPA channel toall packet data users regardless of any particular application and thenupgrade or downgrade the allocated bandwidth, if possible, according tothe subsequent resource needs of each user device. Additionally,existing HSDPA bandwidth allocation techniques typically employ afirst-come, first-serve priority scheme for allocating bandwidth tousers. These existing best-effort and first-come, first-serve bandwidthallocation techniques may yield sub-optimal use of the HSDPA channel,negatively impacting the HSDPA channel's revenue generation potential.

However, in the illustrated example, the base station 125 operatesaccording to the methods and apparatus described herein to allocateportions of the shared resources of the HSDPA channel 105 to each of theuser devices 110-120 in an application-aware manner and with anawareness of some or all of the requests for shared resource allocationreceived during a given interval of time. For example, in an exampleoperation of the communication network 100 according to the methods andapparatus described herein, the example user device 110 queries theapplication server 145 to obtain application content, such as, forexample, streaming video content (or any other available applicationcontent). The user device 110 of the illustrated example sends the queryto the application server via the signaling channel 130 and thesignaling connection 155.

Assuming for ease of discussion and without loss of generality that theuser device 110 is requesting streaming video content, the exampleapplication server 145 responds to the query by providing a list ofservice options for offering the requested streaming video content. Forexample, the application server 145 may provide a list of offered videoresolutions and/or corresponding required bit rates for providing therequested streaming video content. In the illustrated example, theapplication server 145 provides the list of service options for offeringthe requested application content to the user device 110 via thesignaling connection 155 and the signaling channel 130.

Next, the example user device 110 negotiates with the example basestation 125 for allocation of some or all of the shared resources of theHSDPA channel 105. The negotiation between the user device 110 and thebase station 125 is based on, for example, the availability of theshared resources of the HSDPA channel 105 and a set of costs associatedwith different service options that may be supported using differentportions of the shared HSDPA resources. For example, the base station125 may obtain the list of service options for offering the streamingvideo content requested by the user device 110 from, for example, theuser device 110 via the signaling channel 130 and/or by extracting theinformation from the message(s) exchanged between the application server145 and the user device 110 via the signaling connection 155. Using thislist of service options, the base station 125 of the illustrated exampledetermines the costs for allocating the appropriate portions of theshared resources (e.g., channel codes and/or time slots) of the HSDPAchannel 105 to support the different service options (e.g., videoresolutions/required bit rates) for providing the requested streamingvideo content. For example, and as discussed in greater detail below,the example base station 125 can implement one or more algorithms todetermine the set of costs to improve revenue generation whileguaranteeing service delivery quality on the HSDPA channel 105.Additionally, the cost determination algorithms implemented by theexample base station 125 can be implemented to factor in servicerequests from other user devices, such as, for example, the user devices115 and/or 120, to optimize the resource allocation of the HSDPA channel105.

After receiving a list of the different shared resource allocation costsfrom the example base station 125 via, for example, the signalingchannel 130, the example user device 110 selects one of the availableservice options and/or consents to a particular cost for providing therequested application content. For example, the user device 110 mayconsent (e.g., based on user input, prior configuration information, theuser's service plan, etc.) to a higher service fee to obtain a higherHSDPA shared resource allocation for streaming the requested videocontent at a better service quality. In response to receiving theselection/consent via, for example, the signaling channel 130, theexample base station 125 allocates and guarantees the negotiated sharedresources (e.g., codes and/or time slots) for the user device 110. Forexample, in the context of the HSDPA channel 105, the base station 125may reserve the required amount of time slots and/or channel codes toallocate the negotiated portion of the shared resources to provide therequested streaming video content at the desired quality of service.

After selecting the desired service option and being allocated theappropriate portion of the shared resources of the HSDPA channel 105,the example user device 110 requests the application content from theapplication server 145 with an appropriate data rate corresponding tothe bandwidth allocated by the base station 125. For example, in thecontext of streaming video content, the user device 110 requests thedesired video content, and the application server 145 begins providing(e.g., streaming) the video content at the desired video resolution/bitrate via, for example, the traffic connection 150. The example basestation 125, in turn, transmits the application content (e.g., streamingvideo) to the user device 110 at the negotiated and guaranteed bit rateover the HSPDA channel 105. Additionally, in the illustrated example,after the user device 110 receives and begins processing the applicationcontent (e.g., shown as the application content 160 in FIG. 1), the userdevice 110 may renegotiate its allocation of shared resources of theHSDPA channel 105, as discussed in greater detail below. In this way,the user device 110 may be allocated only the amount of bandwidth thatis needed/desired for receiving particular application content 160 at adesired quality of service.

A block diagram of a second example mobile communication network 200capable of allocating the shared resources of an HSPA channel accordingto the methods and apparatus disclosed herein is shown in FIG. 2. Thesecond example mobile communication network 200 of FIG. 2 illustrates amore detailed view of a portion of the first example mobilecommunication network 100 of FIG. 1 and, therefore, includes manyelements in common with the first example mobile communication network100. As such, like elements in FIGS. 1 and 2 are labeled with the samereference numerals. For brevity, the detailed descriptions of these likeelements are provided above in connection with the discussion of FIG. 1and, therefore, are not repeated in the discussion of FIG. 2.

Turning to FIG. 2, the second example mobile communication network 200also implements a WCDMA communication network according to the UMTSstandard and includes the example HSDPA channel 105, the example userdevice 110, the example base station 125, the example signaling channel130, the example application server 145, the example traffic connection150 and the example signaling connection 155 described above inconnection with the example communication network 100 of FIG. 1.Compared to FIG. 1, FIG. 2 also provides more detailed block diagrams ofthe example user device 110, the example base station 125 and theexample application server 145 to illustrate the HSDPA shared resourceallocation functionality implemented by the second example mobilecommunication network 200. Additionally, the resource allocationfunctionality implemented by the second example mobile communicationnetwork 200 is divided into four phases, with each phase denoted by anappropriately numbered circle in FIG. 2.

To implement HSDPA shared resource allocation according to the methodsand apparatus described herein, the example application server 145 ofFIG. 2 includes a query service processor 305 to receive queries fromthe example user device 110 requesting application content, such as, forexample, the streaming video content discussed above. In response tosuch an application content query, the example query service processor305 provides a list of service options (e.g., such as video resolutionsand/or corresponding bit rates) for providing the requested applicationcontent. The example query service processor 305 receives and respondsto the application content queries via the example signaling channel 130and the signaling connection 155 during a first phase of HSDPA sharedresource allocation as indicated by the circles labeled with a number“1” in FIG. 2.

To perform the second phase of HSDPA shared resource allocation asindicated by the circles labeled with a number “2” in FIG. 2, theexample user device 110 includes a graphical user interface (GUI) 310(e.g., implemented by any appropriate module, processor, etc.), aresource negotiator 315 and a user equipment (UE) configuration storageelement 320 to process the list of service options (e.g., such as videoresolutions and/or corresponding bit rates) received from the exampleapplication server 145. The example UE configuration storage element 320may be implemented by any appropriate memory element, device, etc. In anexample implementation, the resource negotiator 315 is configured toobtain, via the example signaling channel 130 and the signalingconnection 155, the list of service options from the application server145 for providing the requested application content. Additionally, theexample resource negotiator provides the list of service options to theexample base station 125 via the example signaling channel 130 to obtaina list of costs associated, respectively, with the list of serviceoptions. Alternatively, the example base station 125 may extract thelist of service options from the message(s) exchanged between theapplication server 145 and the user device 110 via the signalingconnection 155. In either implementation, the example base station 125determines the costs associated with allocating the appropriate portionsof the shared resources of the HSDPA channel 105 to support thedifferent service options and provides a list of these costs to theexample resource negotiator 315 via the example signaling channel 130.

After receiving the list of service options and the list of associatedcosts, the example resource negotiator 315 causes the service optionsand associated costs to be displayed to the device's user via theexample GUI 310. Additionally, the example resource negotiator 315 mayaccess the example UE configuration storage element 320 to obtain, forexample, stored profile information, preference information, etc., to bedisplayed with and/or modify the display of the service options andassociated costs by the example GUI 310. For example, the profile and/orpreference information stored in the example UE configuration storageelement 320 may correspond to a subscription plan associated with theexample user device 110 which, for example, may cause certain of theservice option(s) and/or respective cost(s) to be indicated (e.g.,highlighted) as the default service option to be selected. In anotherexample, the profile and/or preference information stored in the exampleUE configuration storage element 320 may indicate a preference for aparticular default service option to be selected. For example, in thelatter implementation, the stored profile and/or preference informationmay indicate that the device's user prefers service options that incurno over-the-air charges for allocation of the shared HSDPA resourcesabove a default/nominal charge.

To complete the second phase of HSDPA shared resource allocation in theexample user device 110, the example resource negotiator 315 signals aselected service option to the example base station 125 via the examplesignaling channel 130. For example, the device's user may select one ofthe available service options based on its associated costs. In such anexample implementation, the resource negotiator 315 receives the user'sselection via the example GUI 310 (or via any device input, such as bypressing one or more buttons on a keypad, keyboard, etc.) and signalsthe selection to the example base station 125. Alternatively, theexample resource negotiator 315 may be configured to automaticallyselect a service option based on profile information, preferenceinformation, etc, stored in the example UE configuration storage element320.

At the base station side, to perform the second phase of the HSDPAshared resource allocation as indicated by the circles labeled with anumber “2” in FIG. 2, the example base station 125 includes a resourceprocessor 325 and a resource allocator 330. In the illustrated example,the resource processor 325 and the resource allocator 330 areimplemented by a radio network controller (RNC) 335 associated with theexample base station 125. In the illustrated example, the resourceprocessor 325 is configured to determine the set of costs associated,respectively, with the possible service options for providing therequested application content (e.g., such as streaming video content)over the HSDPA channel 105 to the example user device 110. As discussedabove, the example resource processor 325 may obtain the list of serviceoptions from the example user device 110 via the example signalingchannel 130 and/or by extracting the list of service options frommessage(s) exchanged between the example application server 145 and theexample user device 110 via the example signaling connection 155.

In general, the resource processor 325 of the illustrated exampleperforms one or more algorithms to determine the set of costsassociated, respectively, with the list of service options, with a goalof improving revenue generation for the service provider/networkoperator while guaranteeing service delivery quality on the HSDPAchannel 105. For example, the cost determination algorithm(s) performedby the example resource processor 325 may consider service requests fromother user devices to optimize the resource allocation of the HSDPAchannel 105 based on a determined amount of the shared HSDPA resourcesunder consideration for allocation in response to the plurality ofpending service requests. Additionally or alternatively, the exampleresource processor 325 may consider service requests from all userdevices, including the example user device 110, and prioritize theservice requests based on, for example, subscription plan and/or profileinformation associated with the user device(s). Additionally oralternatively, the cost determination algorithm(s) performed by theexample resource processor 325 may be based on any or all of thefollowing factors: (1) a percentage utilization of the shared HSDPAresources being allocated to service the plurality of pending servicerequests; (2) a subscription plan associated with the example userdevice 110; (3) an amount of revenue to be generated by allocation ofthe shared HSDPA resources to service the plurality of pending servicerequests; (4) an overall service delivery quality resulting fromallocating the shared HSDPA resources to service the plurality ofpending service requests, etc. As such, any appropriate costdetermination algorithm is considered within the scope of the sharedresource allocation methods and apparatus described herein.

To complete the second phase of HSDPA shared resource allocation in theexample base station 125, the example resource allocator 330 isconfigured to allocate at least a portion of the shared resources of theHSDPA channel 105 to the example user device 110 according to aparticular service option selected from the list of possible serviceoptions. As discussed above, the example resource allocator 330 mayreceive the selected service option (e.g., based on a user selectionand/or stored information) from the example user device 110 via theexample signaling channel 130. Alternatively, the example resourceprocessor 325 may be configured to automatically select a particularservice option based on, for example, subscription plan and/or profileinformation associated with the example user device 110 and provide thisselection to the example resource allocator 330. In either exampleimplementation, the example resource allocator 330 then allocates anappropriate portion of the shared resources of the HSDPA channel 105 tothe example user device 110 based on the selected service option. Forexample, the resource allocator 330 may allocate an appropriate numberof HSDPA time slot(s) and/or HSDPA channel codes to provide thebandwidth (i.e., data rate) required to support the selected serviceoption.

The third phase of HSDPA shared resource allocation as indicated by thecircles labeled with a number “3” in FIG. 2 occurs after or in parallelwith the allocation of the appropriate portion of the shared resourcesof the HSDPA channel 105 to the example user device 110 according to theselected service option. During this third phase, the example userdevice 110 requests that the application server 145 provide theapplication content (e.g., streaming video content) according to theselected service option negotiated with the example base station 125.For example, in the context of streaming video content, the example userdevice 110 requests the desired video content and the exampleapplication server 145 begins providing (e.g., streaming) the videocontent at the video resolution/bit rate corresponding to the selectedservice option via, for example, the traffic connection 150.

To perform the fourth phase of HSDPA shared resource allocation asindicated by the circles labeled with a number “4” in FIG. 2, theexample base station 125 includes a scheduler 340. In the illustratedexample, the scheduler 340 is implemented by a Node-B 345 associatedwith the example base station 125. The example scheduler 340 isconfigured to schedule transmission of data packets over the HSDPAchannel 105 to the example user device 110 according to the shared HSDPAresources allocated to the user device 110 by the example resourceallocator 330. For example, the scheduler 340 may receive theapplication content data being transmitted by the example applicationserver 145 over the example traffic connection 150. The examplescheduler 340 then segments the received data into packets fortransmission to the example user device 110 within the time slot(s) andchannel code(s) of the HSDPA channel 105 allocated by the exampleresource allocator 330.

In an example implementation of the communication network 200, thesecond, third and fourth phases of HSDPA shared resource allocationdescribed above may be repeated while the example application server 145is delivering the selected application content to the example userdevice 110. Such an implementation allows the example user device 110 torenegotiate its allocation of the shared resources of the HSDPA channel105. For example, upon receiving the application content over the HSDPAchannel 105 according to an initially negotiated service option, theuser of the user device 100 may be willing to pay an increased fee toimprove the quality of service or may decide that a lower quality ofservice would be acceptable and, thus, wish to lower the fee currentlybeing paid for HSDPA resource allocation.

To support such renegotiation of shared HSDPA resource allocation, theexample resource negotiator 315 included in the example user device 110may be further configured to signal a request to the example basestation 125 for a new list of costs and a list of associated availableservice options (because the available service options may have changedin the interim due to allocation and/or de-allocation of resourcesto/from other user devices). The example resource processor 325 includedin the example base station 125 may be further configured to process therequest and determine the new list of costs and associated serviceoptions. The example resource allocator 330 included in the example basestation 125 may also be further configured to reallocate the sharedHSDPA resources (e.g., time slot(s) and/or channel code(s)) in responseto receiving a new service option selection from the example user device110 or the example resource processor 325. Additionally, the exampleapplication server 145 and the example scheduler 340 included in theexample Node-B 345 associated with the example base station 125 may befurther configured to re-convey and re-schedule, respectively,transmission of the application content to the example user device 110according to the renegotiated service option.

Flowcharts representative of example machine readable instructions thatmay be executed to implement, at least in part, the examplecommunication networks 100 and/or 200, the user devices 110, 155 and/or120, the example base station 125, the example application server 145,the example query service processor 305, the example GUI 310, theexample resource negotiator 315, the example UE configuration storageelement 320, the example resource processor 325, the example resourceallocator 330, the example RNC 335, the example scheduler 340 and/or theexample Node-B 345 are shown in FIGS. 3-5. In these examples, themachine readable instructions represented by each flowchart may compriseone or more programs for execution by: (a) a processor, such as theprocessor 612 shown in the example computer 600 discussed below inconnection with FIG. 6, (b) a controller, and/or (c) any other suitabledevice. The one or more programs may be embodied in software stored on atangible medium such as, for example, a flash memory, a CD-ROM, a floppydisk, a hard drive, a DVD, or a memory associated with the processor612, but the entire program or programs and/or portions thereof couldalternatively be executed by a device other than the processor 612and/or embodied in firmware or dedicated hardware (e.g., implemented byan Application Specific Integrated Circuit (ASIC), a Programmable LogicDevice (PLD), a Field Programmable Logic Device (FPLD), discrete logic,etc.). For example, any or all of the example communication networks 100and/or 200, the user devices 110, 155 and/or 120, the example basestation 125, the example application server 145, the example queryservice processor 305, the example GUI 310, the example resourcenegotiator 315, the example UE configuration storage element 320, theexample resource processor 325, the example resource allocator 330, theexample RNC 335, the example scheduler 340 and/or the example Node-B 345could be implemented by any combination of software, hardware, and/orfirmware. Also, some or all of the machine readable instructionsrepresented by the flowchart of FIGS. 3-5 may be implemented manually.Further, although the example machine readable instructions aredescribed with reference to the flowcharts illustrated in FIGS. 3-5,many other techniques for implementing the example methods and apparatusdescribed herein may alternatively be used. For example, with referenceto the flowcharts illustrated in FIGS. 3-5, the order of execution ofthe blocks may be changed, and/or some of the blocks described may bechanged, eliminated, combined and/or subdivided into multiple blocks.

Example machine readable instructions 300 that may be executed toimplement user device processing for HSPA shared resource allocation inthe example communication networks 100 and/or 200 are shown in FIG. 3.Without loss of generality, and for ease of discussion, the followingdescription of the example machine readable instructions 300 refers tothe example user device 110 in the example communication network 200 asthe place of execution. However, the instructions may additionally oralternatively be executed by the example user device 110 in the examplecommunication network 100 and/or by any other example user device (e.g.,such as the example user devices 115 and/or 120).

The example machine readable instructions 300 may be executed, forexample, upon occurrence of an event indicating that the example userdevice 110 is to start requesting application content from anapplication server included in or accessible via the examplecommunication network 200, such as, for example, the application server145. The example machine readable instructions 300 begin execution atblock 310 at which the example user device 110 queries the exampleapplication server 145, via the example signaling channel 130 and theexample signaling connection 155, to obtain application content, such asthe example streaming video content discussed above. Control thenproceeds to block 320 at which the example user device 110 obtains alist of service options for offering the application content (e.g., suchas the example streaming video content) requested via the query sent tothe example application server 145 at block 310. For example, inresponse to requesting streaming video content at block 310, the exampleuser device 110 at block 320 may receive a list of service options whichincludes a list of offered video resolutions and/or correspondingrequired bit rates for providing the streaming video content. In anexample implementation, the list of service options is provided by theexample application server 145 via the signaling connection 155 and thesignaling channel 130. In another example implementation, the list ofservice options is provided by the example base station 125 via thesignaling channel 130 after the base station 125 receives serviceinformation from the application server 145 via the signaling connection155.

After receiving the list of service options at block 320, controlproceeds to block 330 at which the example user device 110 obtains alist of costs associated with the list of service options obtained atblock 320. In the illustrated example, each cost corresponds to arespective service option and specifies a fee for obtaining therequested application content (e.g., streaming video content) at therespective service option (e.g., video resolution, bit rate, etc.). Insome example implementations, each cost includes two fees, namely, afirst fee for obtaining the content from the application server 145 anda second fee for obtaining a certain allocation of the shared resourcesof the HSDPA channel 105 commensurate with the respective serviceoption. In an example implementation (e.g., such as in which differentservice providers are responsible for the example base station 125 andthe example application server 145), the list of costs are determined bythe example base station 125 after receiving the list of service optionsfrom the example user device 110 via the example signaling channel 130.In another example implementation (e.g., such as in which the sameservice provider is responsible for both the example base station 125and the example application server 145), the base station 125 determinesthe list of costs after extracting service option information from themessage(s) exchanged between the application server 145 and the userdevice 110 via the signaling connection 155. In either exampleimplementation, at block 330 the example user device I 10 receives thelist of costs from the example base station 125 via the examplesignaling channel 130.

After obtaining the list of costs at block 330, control proceeds toblock 340 at which the example user device 110 negotiates with theexample base station 125 to select a particular service option forproviding the requested application content (e.g., streaming videocontent). The example user device 110 then signals the selected serviceoption to the example base station 125 via the example signaling channel130. In particular, at block 340 the example user device 110 uses theobtained list of service options and associated costs to select aparticular service option and, thus, a corresponding particularallocation of the shared resources of the HSDPA channel 105 to receivethe requested application content. For example, at block 340 the exampleresource negotiator 315 included in the example user device 110 mayobtain the list of service options and associated costs, display thisinformation via the example GUI 310, and receive a user selection viathe GUI 310. Additionally, and as discussed above, the example resourcenegotiator 315 may modify the display of the service options andassociated costs based on stored profile information, preferenceinformation, etc., retrieved from the example UE configuration storageelement 320. Alternatively, the example resource negotiator 315 may usethe information retrieved from the example UE configuration storageelement 320 to automatically select a particular service option with anassociated cost without displaying any information via the example GUI310 and/or requiring any user intervention.

Next, after selecting a service option based on the processing at block340, control proceeds to block 350 at which the example user device 110requests that the example application server 145 provide the requestedapplication content (e.g., streaming video content) according to theselected service option (e.g., selected video resolution, bit rate,etc.). Then, at block 360 the example user device 110 receives therequested application content from the application server 145 accordingto the selected service option.

Next, control proceeds to block 370 at which the example user device 110determines whether the service option (e.g., selected video resolutionand/or bit rate) for providing the requested application content (e.g.,streaming video content) should be revised. For example, after receptionof the requested application content begins, the user of the exampleuser device 110 may be willing to pay an increased fee for an improvedquality of service or may decide that a lower quality of service wouldbe acceptable and, thus, wish to lower the fee currently being paid forHSDPA resource allocation. If the example user device 110 determines(e.g., via user input) that the service option for providing therequested application content should be revised (block 370), controlreturns to block 320 and blocks subsequent thereto at which the exampleuser device 110 obtains a new list of service options and associatedcosts and repeats the negotiation process. However, if the example userdevice 110 determines (e.g., via user input or an absence of any userinput) that the service option for providing the requested applicationcontent should not be revised (block 370), execution of the examplemachine readable instructions 300 ends.

Example machine readable instructions 400 that may be executed toimplement base station processing for HSPA shared resource allocation inthe example communication networks 100 and/or 200 are shown in FIG. 4.Without loss of generality, and for ease of discussion, the followingdescription of the example machine readable instructions 400 refers tothe example base station 125 in the example communication network 200 asthe place of execution. However, the instructions may additionally oralternatively be executed by the example base station 125 in the examplecommunication network 100, in a different network, and/or by one or moredevices located elsewhere in a network.

The example machine readable instructions 400 may be executed, forexample, upon an event indicating that the example base station 125 willneed to allocate or reallocate at least a portion of the sharedresources of the HSDPA channel 105 of the example communication network200 to a user device, such as, for example, the user device 110. Theexample machine readable instructions 400 begin execution at block 410at which the example base station 125 obtains a list of service optionsto be negotiated with the example user device 110 for providingapplication content to the user device 110. For example, at block 410the example resource processor 325 included in the example base station125 may obtain the list of service options from the example user device110 itself via the example signaling channel 130. Additionally oralternatively, the example resource processor 325 may extract the listof service options from message(s) exchanged between the exampleapplication server 145 and the example user device 110 via the examplesignaling connection 155.

After obtaining the list of service options at block 410, controlproceeds to block 420 at which the example base station 125 determinesthe current utilization of the shared resources of the HSDPA channel105. For example, at block 420 the example resource processor 325 maydetermine the current amount of shared HSDPA resources actuallyallocated to the user device(s) served by the example base station 125.Next, control proceeds to block 440 at which the example base station125 determines an expected utilization of the shared resources of theHSDPA channel 105. For example, at block 440 the example resourceprocessor 325 may combine the current amount of shared HSDPA resourcesdetermined at block 420 with a determined amount of the shared HSDPAresources under consideration for allocation in response to one or morepending service requests from the user device 110 and any other userdevices served by the example base station 125.

Next, control proceeds to block 440 at which the example base station125 determines a cost associated with each service option in the list ofservice options obtained at block 410. For example, at block 420 theexample resource processor 325 may determine the costs for therespective service options based on the expected utilization of sharedHSDPA resources determined at block 430 with a goal of improving revenuegeneration while guaranteeing service delivery quality on the HSDPAchannel 105. For example, at block 440 the resource processor 325 maydetermine the costs based on any or all of the following factors: (1) apercentage utilization of the shared HSDPA resources being allocated toservice the plurality of pending service requests, (2) a subscriptionplan associated with the example user device 110; (3) an amount ofrevenue to be generated by allocation of the shared HSDPA resources toservice the plurality of pending service requests; (4) an overallservice delivery quality resulting from allocating the shared HSDPAresources to service the plurality of pending service requests, etc.

After determining the costs at block 440 associated with the list ofservice options obtained at block 410, control proceeds to block 450 atwhich the example base station 125 sends the list of costs to theexample user device 110 via the example signaling channel 130. Controlthen proceeds to block 460 at which the example base station 125negotiates with the example user device 110 for a particular serviceoption and associated cost. For example, at block 460 the exampleresource allocator 330 included in the example base station 125 mayreceive a message from the user device 110 via the example signalingchannel 130 indicating the particular service option selected by theuser device 110 from the list of service options. Alternatively, atblock 460 the example resource processor 325 may be configured toautomatically select a particular service option for the example userdevice and provide this selection to the example resource allocator 330.For example, the resource processor 325 could use subscriptionplan/profile information associated with the example user device 110 toselect a preferred service option consistent with one of the costsdetermined at block 440.

After negotiating with the example user device 110 at block 460 andobtaining/determining a selected service option, control proceeds toblock 470 at which the example base station 125 allocates an appropriateportion of the shared resources of the HSDPA channel 105 according tothe selected service option. For example, at block 470 the resourceallocator 330 may allocate an appropriate number of HSDPA time slot(s)and/or HSDPA channel codes to provide the bandwidth (i.e., data rate)required to support the selected service option. Control then proceedsto block 480 at which the example base station 125 schedulestransmission of the application content (e.g., streaming video content)to the example user device 110 according to the selected service option.For example, at block 480 the example scheduler 340 included in theexample base station 125 may schedule transmission of data packets overthe HSDPA channel 105 to the example user device 110 according to theshared HSDPA resources allocated to the user device 110. In such anexample implementation, the scheduler 340 may receive the applicationcontent data being transmitted by the example application server 145over the example traffic connection 150 and segment the received datainto packets for transmission to the example user device 110 within thetime slot(s) and channel code(s) of the HSDPA channel 105 allocated bythe example resource allocator 330 at block 470. After applicationcontent scheduling at block 480 is complete, execution of the examplemachine readable instructions 400 ends.

Example machine readable instructions 500 that may be executed toimplement application server processing for HSPA shared resourceallocation in the example communication networks 100 and/or 200 areshown in FIG. 5. Without loss of generality, and for ease of discussion,the following description of the example machine readable instructions400 refers to the example application server 145 in the examplecommunication network 200 as the place of execution. However, theinstructions may additionally or alternatively be executed by theexample application server 145 in the example communication network 100and/or by another network device in the network 100 and/or a differentnetwork.

The example machine readable instructions 500 may be executed, forexample, upon an event indicating that the example application server145 is being requested to serve application content to a user device,such as, for example, the user device 110 in the example communicationnetwork 200. The example machine readable instructions 500 beginexecution at block 510 at which the example application server 145receives a query from the example user device 110 requesting applicationcontent, such as the example streaming video content discussed above.For example, at block 510 the query service processor 305 included inthe example application server 145 may receive the query from theexample user device 110 via the example signaling channel 130 and theexample signaling connection 155.

After receiving the query at block 510, control proceeds to block 520 atwhich the example application server 145 determines a list of serviceoptions for providing the requested application content (e.g., streamingvideo content) to the example user device 110. For example, at block 520the example query service processor 305 provides a list of serviceoptions (e.g., such as video resolutions and/or corresponding bit rates)for providing the application content requested in the query received atblock 510. After determining the list of service options at block 520,control proceeds to block 530 at which the example application server145 sends the list of service options for providing the requestedapplication content back to the example user device 110 via the examplesignaling connection 155 and the example signaling channel 130.

Next, control proceeds to block 540 at which the example applicationserver 145 receives a selection from the example user device 110specifying a selected service option from the list of service optionsprovided at block 530. Control then proceeds to block 550 at which theexample application server begins providing the requested applicationcontent (e.g., streaming video content) to the example user device 110according to the selected service option received at block 540. Forexample, at block 550 the example application server 145 may beginstreaming requested video content to the example user device 110 via theexample traffic connection 150 at a video resolution/bit ratecorresponding to the selected service option received at block 540.After the example application server 145 provides the applicationcontent at block 550, execution of the example machine readableinstructions 500 ends.

FIG. 6 is a block diagram of an example computer 600 capable ofimplementing the apparatus and methods disclosed herein. The computer600 can be, for example, a server, a personal computer, a PersonalDigital Assistant (PDA), an Internet appliance, a DVD player, a CDplayer, a digital video recorder, a personal video recorder, a set topbox, or any other type of computing device.

The system 600 of the instant example includes a processor 612 such as ageneral purpose programmable processor. The processor 612 includes alocal memory 614, and executes coded instructions 616 present in thelocal memory 614 and/or in another memory device. The processor 612 mayexecute, among other things, the machine readable instructionsrepresented in FIGS. 3-5. Additionally or alternatively, the processor612 may implement, for example, the example query service processor 305,the example GUI 310, the example resource negotiator 315, the exampleresource processor 325, the example resource allocator 330 and/or theexample scheduler 340. The processor 612 may be any type of processingunit, such as one or more microprocessors from the Intel® Centrino®family of microprocessors, the Intel® Pentium® family ofmicroprocessors, the Intel® Itanium® family of microprocessors, and/orthe Intel XScale® family of processors. Of course, other processors fromother families are also appropriate.

The processor 612 is in communication with a main memory including avolatile memory 618 and a non-volatile memory 620 via a bus 622. Thevolatile memory 618 may be implemented by Static Random Access Memory(SRAM), Synchronous Dynamic Random Access Memory (SDRAM), Dynamic RandomAccess Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/orany other type of random access memory device. The non-volatile memory620 may be implemented by flash memory and/or any other desired type ofmemory device. Access to the main memory 618, 620 is typicallycontrolled by a memory controller (not shown).

The computer 600 also includes an interface circuit 624. The interfacecircuit 624 may be implemented by any type of interface standard, suchas an Ethernet interface, a Universal Serial Bus (USB), and/or a 3rdGeneration Input/Output (3GIO) interface.

One or more input devices 626 are connected to the interface circuit624. The input device(s) 626 permit a user to enter data and commandsinto the processor 612. The input device(s) can be implemented by, forexample, a keyboard, a mouse, a touchscreen, a track-pad, a trackball,an isopoint and/or a voice recognition system.

One or more output devices 628 are also connected to the interfacecircuit 624. The output devices 628 can be implemented, for example, bydisplay devices (e.g., a liquid crystal display, a Cathode Ray Tubedisplay (CRT)), by a printer and/or by speakers. The interface circuit624, thus, typically includes a graphics driver card.

The interface circuit 624 also includes a communication device such as amodem or network interface card to facilitate exchange of data withexternal computers via a network (e.g., an Ethernet connection, aDigital Subscriber Line (DSL), a telephone line, coaxial cable, acellular telephone system, etc.).

The computer 600 also includes one or more mass storage devices 630 forstoring software and data. Examples of such mass storage devices 630include floppy disk drives, hard drive disks, compact disk drives andDigital Versatile Disk (DVD) drives. The mass storage device 630 mayimplement the example UE configuration storage element 320.Alternatively, the volatile memory 618 may implement the example UEconfiguration storage element 320.

At least some of the above described example methods and/or apparatusare implemented by one or more software and/or firmware programs runningon a computer processor. However, dedicated hardware implementationsincluding, but not limited to, application specific integrated circuits,programmable logic arrays and other hardware devices can likewise beconstructed to implement some or all of the example methods and/orapparatus described herein, either in whole or in part. Furthermore,alternative software implementations including, but not limited to,distributed processing or component/object distributed processing,parallel processing, or virtual machine processing can also beconstructed to implement the example methods and/or apparatus describedherein.

It should also be noted that the example software and/or firmwareimplementations described herein are optionally stored on a tangiblestorage medium, such as: a magnetic medium (e.g., a magnetic disk ortape); a magneto-optical or optical medium such as an optical disk; or asolid state medium such as a memory card or other package that housesone or more read-only (non-volatile) memories, random access memories,or other re-writable (volatile) memories; or a signal containingcomputer instructions. A digital file attached to e-mail or otherinformation archive or set of archives is considered a distributionmedium equivalent to a tangible storage medium. Accordingly, the examplesoftware and/or firmware described herein can be stored on a tangiblestorage medium or distribution medium such as those described above orsuccessor storage media.

To the extent the above specification describes example components andfunctions with reference to particular standards and protocols, it isunderstood that the scope of this patent is not limited to suchstandards and protocols. For instance, each of the standards forInternet and other packet switched network transmission (e.g.,Transmission Control Protocol (TCP)/Internet Protocol (IP), UserDatagram Protocol (UDP)/IP, HyperText Markup Language (HTML), HyperTextTransfer Protocol (HTTP)) represent examples of the current state of theart. Such standards are periodically superseded by faster or moreefficient equivalents having the same general functionality.Accordingly, replacement standards and protocols having the samefunctions are equivalents which are contemplated by this patent and areintended to be included within the scope of the accompanying claims.

This patent contemplate examples wherein a device is associated with oneor more machine readable mediums containing instructions, or receivesand executes instructions from a propagated signal so that, for example,when connected to a network environment, the device can send or receivevoice, video or data, and communicate over the network using theinstructions. Such a device can be implemented by any electronic devicethat provides voice, video and/or data communication, such as atelephone, a cordless telephone, a mobile phone, a cellular telephone, aPersonal Digital Assistant (PDA), a set-top box, a computer, and/or aserver.

Additionally, although this patent discloses example systems includingsoftware or firmware executed on hardware, it should be noted that suchsystems are merely illustrative and should not be considered aslimiting. For example, it is contemplated that any or all of thesehardware and software components could be embodied exclusively inhardware, exclusively in software, exclusively in firmware or in somecombination of hardware, firmware and/or software. Accordingly, whilethe above specification described example systems, methods and articlesof manufacture, persons of ordinary skill in the art will readilyappreciate that the examples are not the only way to implement suchsystems, methods and articles of manufacture. Therefore, althoughcertain example methods, apparatus and articles of manufacture have beendescribed herein, the scope of coverage of this patent is not limitedthereto. On the contrary, this patent covers all methods, apparatus andarticles of manufacture fairly falling within the scope of the appendedclaims either literally or under the doctrine of equivalents.

1. A method to allocate shared resources of a high speed packet accesschannel, the method comprising: providing information to a user devicedescribing a plurality of service options for exchanging data over thehigh speed packet access channel, wherein the information comprises aplurality of costs based on an availability of the shared resources; andallocating at least a portion of the shared resources of the high speedpacket access channel to the user device according to a selected serviceoption from the plurality of service options.
 2. A method as defined inclaim 1 wherein the high speed packet access channel comprises a highspeed downlink packet access channel in a wideband code divisionmultiple access network.
 3. A method as defined in claim 1 wherein theshared resources comprise a plurality of time slots and a plurality ofchannel codes capable of transmitting a plurality of data streams overthe high speed packet access channel, and wherein allocating the atleast a portion of the shared resources of the high speed packet accesschannel to the user device comprises selecting an appropriate number ofat least one of the plurality of time slots or the plurality of channelcodes to support the selected service option.
 4. A method as defined inclaim 1 wherein the availability of the shared resources is based on adetermined amount of shared resources under consideration for allocationin response to a plurality of service requests from a plurality of userdevices.
 5. A method as defined in claim 4 further comprisingdetermining the plurality of costs based on at least one of: apercentage utilization of the shared resources being allocated toservice the plurality of service requests; a subscription planassociated with the user device; an amount of revenue to be generated byallocation of the shared resources to service the plurality of servicerequests; or an overall service delivery quality resulting fromallocating the shared resources to service the plurality of servicerequests.
 6. A method as defined in claim 1 further comprising providingthe information to the user device in response to a request from theuser device for a description of available service options correspondingto a particular application from a plurality of available applications.7. A method as defined in claim 1 wherein allocating at least a portionof the shared resources to the user device according to the selectedservice option comprises: scheduling transmission of the data to beexchanged; and allocating one or more time slots and one or more channelcodes of the high speed packet access channel based on the selectedservice option.
 8. A method as defined in claim 1 wherein the selectedservice option is selected form the plurality of service options basedon at least one of a subscription plan associated with a user of theuser device or a response received from the user device.
 9. A method asdefined in claim 1 further comprising reallocating a different portionof the shared resources of the high speed packet access channel to theuser device in response to the user device requesting a differentservice option for exchanging data over the high speed packet accesschannel.
 10. A method as defined in claim 9 wherein the information isfirst information and the plurality of costs is a first plurality ofcosts, and further comprising providing second information describingthe plurality of service options and comprising a second plurality ofcosts to the user device in response to a request from the user device.11-14. (canceled)
 15. An apparatus to allocate shared resources of ahigh speed packet access channel, the apparatus comprising: a resourceprocessor to determine a plurality of costs associated with a pluralityof service options for exchanging data with a user device over a highspeed packet access channel; and a resource allocator to allocate atleast a portion of the shared resources of the high speed packet accesschannel to the user device according to a selected service option fromthe plurality of service options.
 16. An apparatus as defined in claim15 further comprising a scheduler to schedule transmission of datapackets to the user device according to the at least a portion of theshared resources of the high speed packet access channel allocated tothe user device by the resource allocator.
 17. An apparatus as definedin claim 15 wherein the shared resources comprises a plurality of timeslots and a plurality of channel codes capable of transmitting aplurality of data streams over the high speed packet access channel, andwherein the resource allocator is configured to select an appropriatenumber of at least one of the plurality of time slots or the pluralityof channel codes to support the selected service option.
 18. Anapparatus as defined in claim 15 wherein the resource processor isconfigured to determine the plurality of costs associated with theplurality of service options based on an amount of shared resourcesunder consideration for allocation to a plurality of user devices. 19.An apparatus as defined in claim 15 wherein the resource processor isconfigured to determine the plurality of costs associated with theplurality of service options based on at least one of: a percentageutilization of the shared resources being allocated to service theplurality of service requests; a subscription plan associated with theuser device; an amount of revenue to be generated by allocation of theshared resources to service the plurality of service requests; or anoverall service delivery quality resulting from allocating the sharedresources to service a plurality of user devices.
 20. An apparatus asdefined in claim 15 wherein the high speed packet access channelcomprises a high speed downlink packet access channel in a wideband codedivision multiple access network.
 21. A user device for exchanging dataover a high speed packet access channel, the user device comprising: aresource negotiator to obtain information describing a plurality ofservice options for exchanging data over the high speed packet accesschannel, wherein the information comprises a plurality of costs based onan availability of the shared resources; a module adapted to implement agraphical user interface to display the plurality of service options andthe plurality of costs; and a device input to obtain a selection of oneof the plurality of service options for exchanging data over the highspeed packet access channel.
 22. A user device as defined in claim 21wherein the resource negotiator is configured to obtain a list of theplurality of service options from an application server providing thedata to be exchanged over high speed packet access channel, and toobtain a list of the plurality of costs from a base station implementingthe high speed packet access channel.
 23. A user device as defined inclaim 21 further comprising a storage element to store at least one ofprofile information or preference information for use in modifying thedisplay of the plurality of service options and the plurality of costsby the graphical user interface.
 24. A user device as defined in claim21 wherein the resource negotiator is further configured to signal theselection of the one of the plurality of service options to a basestation implementing the high speed packet access channel.
 25. A userdevice as defined in claim 21 wherein the high speed packet accesschannel comprises a high speed downlink packet access channel in awideband code division multiple access network.
 26. A user device asdefined in claim 21 wherein the device input is a portion of thegraphical user interface.